"""
    使用pandas操作Excel/csv文件
"""

import pandas
import os


class OperationData(object):
    def __init__(self, file_name: str):
        # base_path = os.path.dirname(__file__)  # 当前文件夹的绝对路径
        base_path = os.path.dirname(os.path.dirname(__file__))  # 当前文件夹的上一级路径  cd..
        data_path = os.path.join(base_path, 'Data')  # Data路径
        file_path = os.path.join(data_path, file_name)  # Data中的文件路径
        # 判断文件后缀
        if file_name.endswith('.xls'):
            self.table = pandas.read_excel(file_path, keep_default_na=False)
        elif file_name.endswith('.csv'):
            self.table = pandas.read_csv(file_path, keep_default_na=False)
        else:
            self.table = None
            print('文件格式错误,只能读取CSV或xls')

    def get_data_list(self):
        """
        读取数据格式为列表嵌套列表格式
        :return: list  [[],[],[]]
        """
        if self.table is not None:
            return self.table.values.tolist()  # 将表格中的数据,安装列表嵌套列表的方式读取出来

    def get_data_dict(self):
        """
        读取数据格式为列表嵌套字典格式
        :return: list  [{},{},{}]
        """
        if self.table is not None:
            return [self.table.loc[i].to_dict() for i in self.table.index.values]  # 列表嵌套字典


if __name__ == '__main__':
    oper = OperationData('user_login.csv')
    print(oper.get_data_list())
    print(oper.get_data_dict())
